package com.mf.utils;

import cn.hutool.core.date.DateTime;
import com.mf.exception.ApiException;

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Date;

/**
 * @Author: lmf
 * @Create: 2025/4/21 17:05
 * @module: id生成
 */
public class UtilIdGenerator {

    /**
     * 递增ID
     *
     * @param currentId 当前ID
     * @return 递增后的ID
     */
    public static String generateId(String prefix, int zeroPaddingLength, String currentId) {
        int numericPart = Integer.parseInt(currentId.substring(currentId.length() - zeroPaddingLength));
        ;
        numericPart++;

        return generateId(prefix, zeroPaddingLength, numericPart);

    }


    /**
     * 生成ID
     *
     * @param prefix            前缀
     * @param zeroPaddingLength 零填充长度
     * @param currentId         当前ID的数值部分
     * @return 生成的ID
     */
    public static String generateId(String prefix, int zeroPaddingLength, Integer currentId) {
        // 生成格式化字符串
        String formatted = String.format("%0" + zeroPaddingLength + "d", currentId);
        final String date = LocalDate.now().format(DateTimeFormatter.ISO_DATE);
        // 获取当前日期添加到id上 格式为 prefix + 20240101 + formatted
        return prefix + date.replace("-", "") + formatted;
    }


}
